home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / rbbs_pc / 173basm.zip / WATCHDG1.ASM < prev    next >
Assembly Source File  |  1984-10-10  |  3KB  |  134 lines

  1.     PAGE    60,132
  2.     TITLE    Watchdog - resets machine when carrier is lost
  3. ;
  4. ; WATCHDOG.COM    8/15/84  by James R. Reinders
  5. ;
  6. ;  Update/Modification History (reverse order):
  7. ;
  8. ;    8/15/84 - Original program.
  9. ;
  10. ;    The IBM Macro Assembler and Link will produce WATCHDOG.EXE
  11. ;    which must be converted to a .COM program by the DOS
  12. ;    EXE2BIN command:
  13. ;
  14. ;    C\> EXE2BIN WATCHDOG.EXE WATCHDOG.COM
  15. ;------------------------------------------------------------------------------
  16. ;    8/29/84
  17. ;    - Revised for COM1: - 
  18. ;
  19. ;    Jim Kovalsky
  20. ;------------------------------------------------------------------------------
  21. TRUE    EQU    1
  22. FALSE    EQU    0
  23.  
  24. CSEG    SEGMENT 'CODE'
  25.     ASSUME    CS:CSEG
  26.     ORG    100H        ; SET UP FOR .COM CONVERSION
  27.  
  28. INIT    PROC    FAR        ; WE'RE AN INTERRUPT ROUTINE
  29.     JMP    SHORT INITIAL    ; SO WE HAVE TO SET UP FIRST
  30.  
  31. START    PROC    FAR    ; Start of main routine - Timer (18.2 times per second)
  32.     ASSUME    CS:CSEG,DS:CSEG
  33.  
  34.     PUSH    AX
  35.     MOV    AL,CS:101H
  36.     OR    AL,AL
  37.     JZ    NOWAY
  38.     PUSH    DX
  39.  
  40.     MOV    DX,3FEH      ;COM1:  (2FEH for COM2:)
  41.     IN    AL,DX
  42.     RCL    AL,1
  43.     JNC    LOSTCARR
  44.  
  45.     POP    DX
  46. NOWAY:    POP    AX
  47.  
  48.     DB    0EAH        ; JMP old timer routine
  49. WAS1Co    DW    0
  50. WAS1Cs    DW    0
  51.  
  52. LOSTCARR:
  53.     DB    0EAH
  54.     DW    0
  55.     DW    0FFFFH
  56.  
  57. START    ENDP
  58.  
  59. BUFFER    DB    '     Watchdog v1.1    8/29/84   by James R. Reinders, Mods by'
  60.     DB    ' Jim Kovalsky'
  61.     DB    13,10,'$'
  62.  
  63. INITIAL:
  64.     MOV    AX,CS
  65.     MOV    DS,AX
  66.  
  67.     MOV    DX,OFFSET BUFFER
  68.     MOV    AH,9
  69.     INT    21H    ; PRINT GREETING
  70.  
  71.     MOV    AX,351CH
  72.     INT    21H
  73.  
  74. DOWHAT: XOR    AL,AL
  75.     MOV    SI,05DH
  76.     CMP    BYTE PTR [SI],'O'
  77.     JNZ    ONONON
  78.     CMP    BYTE PTR [SI+1],'F'
  79.     JNZ    ONONON
  80.     CMP    BYTE PTR [SI+2],'F'
  81.     JNZ    ONONON
  82.     CMP    BYTE PTR [SI+3],' '
  83.     JZ    OFFOFF
  84.  
  85. ONONON: INC    AL
  86.     CMP    WORD PTR ES:[BX],2E50H
  87.     JNZ    PUTIN
  88. OFFOFF: CMP    WORD PTR ES:[BX],2E50H
  89.     MOV    DX,OFFSET NODOG
  90.     JNZ    PBYE
  91.  
  92.     DEC    BX
  93.     MOV    ES:[BX],AL
  94.  
  95.     MOV    DX,OFFSET ACTIVE
  96.     OR    AL,AL
  97.     JNZ    PBYE
  98.     MOV    DX,OFFSET NACTIVE
  99.  
  100. PBYE:    MOV    AH,9
  101.     INT    21H
  102.     INT    20H
  103.  
  104. PUTIN:    MOV    AX,ES
  105.     MOV    WAS1Cs,AX
  106.     MOV    CS:WAS1Co,BX
  107.  
  108.     MOV    AX,CS
  109.     MOV    DS,AX
  110.  
  111.     MOV    DX,OFFSET START
  112.     MOV    AX,251CH  ; DOS ROUTINE TO RESET INT. VECTOR
  113.     INT    21H
  114.  
  115.     MOV    DX,OFFSET INSTAL
  116.     MOV    AH,9
  117.     INT    21H
  118. ;
  119.     MOV    DX,OFFSET BUFFER ; LAST ADDRESS HERE
  120.     INT    27H    ; TERMINATE BUT STAY RESIDENT
  121. INIT    ENDP
  122.  
  123.  
  124. INSTAL    DB    'Watchdog installed and activated.',13,10,'$'
  125. ACTIVE    DB    'Watchdog activated.',13,10,'$'
  126. NACTIVE DB    'Watchdog deactivated.',13,10,'$'
  127. NODOG    DB    'Watchdog not present OR'
  128.     DB    ' another time utility loaded since watchdog.'
  129.     DB    13,10,'$'
  130.  
  131. CSEG    ENDS
  132.     END    INIT
  133. NODOG    DB    'Watchdog not present OR'
  134.     DB    ' another time utility loaded since watchdog